/** 
* Projet AP5 - Agenda PDA
* EcouteurListeActivity.java
*/

package pda.control;

import pda.view.*;
import pda.datas.*;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;

/** Classe ecouteur qui gère le click sur la liste des evenements */

public class EcouteurListeActivity extends MouseAdapter{

//##########################################################################################################
//										Attributs
//##########################################################################################################

	/**
	* L'objet de la classe AgendaEngine */
	private AgendaEngine leModele;

	/**
	* L'objet de la classe AgendaView */
	private AgendaView laVue;

	
//##########################################################################################################
//										Constructeur
//##########################################################################################################

	/** The constructor */
	public EcouteurListeActivity(AgendaEngine modele, AgendaView vue ){
		this.leModele = modele;
		this.laVue = vue;
	}


//##########################################################################################################
//										Methode
//##########################################################################################################
	
	/** 
	* This have effect on the view on displaying an event details
	*/
	public void mouseClicked ( MouseEvent e ) {
		String cle;
		JList maListe = laVue.getListeActiviteJour(); 
		try {
			int index = maListe.locationToIndex(e.getPoint());
			DefaultListModel tab = (DefaultListModel)( maListe.getModel());
			cle = (String)tab.get(index);
			if (e.getClickCount() == 2) {
				if (cle != "<html>( aucune entr&eacute;e )</html>" && !laVue.isSearching()){
					laVue.recapitulatifEvt(leModele.getEvtOnClick(laVue.getDateChoosen(), cle));	
				}else if (cle != "<html>( aucune entr&eacute;e )</html>" && laVue.isSearching()){
					laVue.recapitulatifEvt(leModele.getEvtOnClick(laVue.getSearchDate(), cle));	
				}
				laVue.refresh();
			}
			laVue.setSelectAct(cle);
		}catch (ArrayIndexOutOfBoundsException exc){
			System.out.println(exc.getMessage());
		}

		
	}
	
}